package managedBeans;

import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import ejb.UtenteDTO;
import ejb.UtenteMgrBeanLocal;

@ManagedBean
@RequestScoped
public class UtenteBean {
	
	@EJB
	private UtenteMgrBeanLocal utenteMgr;
	
	private UtenteDTO utenteMod;
	
	@ManagedProperty("#{param.id}")
	private int id;
	
	public UtenteBean() {
		utenteMod = new UtenteDTO();
	}
	
	public UtenteDTO getUtenteMod() {
		return utenteMod;
	}

	public void setUtenteMod(UtenteDTO utenteMod) {
		this.utenteMod = utenteMod;
	}
	
	public String getName() {
		return utenteMgr.getUtenteDTO().getNome();
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getIdUtente() {
		return utenteMgr.getUtenteDTO().getIdUtente();
	}
	
	public String getCognome() {
		return utenteMgr.getUtenteDTO().getCognome();
	}
	
	public String getEmail() {
		return utenteMgr.getUtenteDTO().getEmail();
	}
	
	public String getDataNascita() {
		return utenteMgr.getUtenteDTO().getDataNascita();
	}
	
	public String getTelefono() {
		return utenteMgr.getUtenteDTO().getTelefono();
	}
	
	public void setName(String nome) {
		utenteMgr.getUtenteDTO().setNome(nome);
		utenteMod.setNome(nome);
	}
	
	public void setCognome(String cognome) {
		utenteMgr.getUtenteDTO().setCognome(cognome);
		utenteMod.setCognome(cognome);
	}
	
	public void setEmail(String email) {
		utenteMgr.getUtenteDTO().setEmail(email);
		utenteMod.setEmail(email);
	}
	
	public void setDataNascita(String data) {
		utenteMgr.getUtenteDTO().setDataNascita(data);
		utenteMod.setDataNascita(data);
	}
	
	public void setTelefono(String telefono) {
		utenteMgr.getUtenteDTO().setTelefono(telefono);
		utenteMod.setTelefono(telefono);
	}
	
	public String modifica() {
		utenteMgr.modifica(utenteMod, utenteMgr.getUtenteDTO().getIdUtente());
		return "PaginaPrincipale?faces-redirect=true";
	}
	
	public List<?> getListaUtenti(){
		return utenteMgr.getUtenti();
	}
	
	public String prenota(){
		utenteMgr.prenota(id);
		return "PaginaPersonale?faces-redirect=true";
	}
	
	public List<?> getPrenotazioniCliente(){
		return utenteMgr.getPrenotazioni();
	}
	
	public boolean isListNull(){
		if(utenteMgr.isListPrenotazioniVuota()){
			return true;
		}
		return false;
	}
	
	public String goToConferma(){
		return "/utenti/PaginaConfermaPartecipazione?faces-redirect=true&invito=true&id=" + id;
	}
	
	public String goToRegistrazione(){
		return "registrazioneInvito?faces-redirect=true&invito=true&id=" + id;
	}
	
	public String rendiDipendente(String username){
		utenteMgr.rendiDipendente(username);
		return "PaginaPrincipale?faces-redirect=true";
	}
}